/**
 * TradingView 测试工具
 * 用于验证TradingView在不同环境下的加载情况
 */

import { getEnvironment, loadTradingViewScript, isTradingViewAvailable } from './tradingview-loader.js'

/**
 * 测试TradingView加载
 */
export async function testTradingViewLoading() {
  console.log('=== TradingView 加载测试开始 ===')
  
  // 1. 检测环境
  const env = getEnvironment()
  console.log('运行环境:', env)
  
  // 2. 检查TradingView是否已存在
  const isAlreadyLoaded = isTradingViewAvailable()
  console.log('TradingView是否已加载:', isAlreadyLoaded)
  
  if (isAlreadyLoaded) {
    console.log('TradingView已存在，无需重新加载')
    return { success: true, message: 'TradingView已存在' }
  }
  
  try {
    // 3. 尝试加载TradingView
    console.log('开始加载TradingView...')
    await loadTradingViewScript()
    
    // 4. 验证加载结果
    const isLoaded = isTradingViewAvailable()
    if (isLoaded) {
      console.log('✅ TradingView加载成功!')
      return { success: true, message: 'TradingView加载成功' }
    } else {
      console.log('❌ TradingView加载失败: 脚本加载但对象未定义')
      return { success: false, message: 'TradingView对象未定义' }
    }
  } catch (error) {
    console.log('❌ TradingView加载失败:', error.message)
    return { success: false, message: error.message }
  }
}

/**
 * 在控制台运行测试
 */
export function runTradingViewTest() {
  testTradingViewLoading().then(result => {
    console.log('=== TradingView 测试结果 ===')
    console.log('结果:', result)
    console.log('=== 测试结束 ===')
  })
}

// 如果在浏览器环境中，将测试函数挂载到window对象
if (typeof window !== 'undefined') {
  window.testTradingView = runTradingViewTest
}
